1. Statement of the Technical Field
The present invention relates to the field of Web services and more particularly to dispatching service calls to nested services in a nested service collection.
2. Description of the Related Art
Web services have become the rage of distributed computing and are viewed as the foundation for developing a truly universal model for supporting the rapid-development of component-based applications over the World Wide Web. Typically, Web services can be defined by an interface and implemented according to the interface, though the implementation details matter little so long as the implementation conforms to the Web services interface. Once a Web service has been implemented according to a corresponding interface, the implementation can be registered with a Web services registry, such as Universal Description, Discover and Integration (UDDI), as is well known in the art.
Web services are known in the art to include a stack of emerging standards that describe a service-oriented, component-based application architecture. Specifically, Web services are loosely coupled, reusable software components that semantically encapsulate discrete functionality and are distributed and programmatically accessible over standard Internet protocols. Conceptually, Web services represent a model in which discrete tasks within e-business processes are distributed widely throughout a value net. Notably, many industry experts consider the service-oriented Web services initiative to be the next evolutionary phase of the Internet.
When Web services are grouped into a single service collection, which further can be grouped into a single service collection of service collections, a nested cluster oriented service intermediary complex can be formed. In the nested cluster oriented service intermediary complex, all external interactions can occur at the top level of the nested hierarchy. The advantage of providing the nested structure can include ease of use, integration, interoperability, and manageability. Nevertheless, the burden imposed upon the intermediary can be significant. Specifically, to route requests for service, the top level must recursively dispatch the request to a target service nested one or more levels below the top level.
In illustration of the difficulties encountered when routing service requests to a nested service, FIG. 1 depicts a nested service collection. The conventional nested service collection can include a top level node 120 coupled to intermediate level nodes 130 and leaf level nodes 140. To route a service request 110 to a suitable level service 140, the request must be routed first to the intermediate level port 130 which can route the request 110 to the selected leaf level port 140 containing the desired service. In the exemplary case shown in FIG. 1, a print request which originally conforms to a “job” interface can be routed by nesting and dispatching logic to a selected port responsible for generic “jobs”. Subsequently, the selected port can determine that the “job” is a print request which can be further routed to a selected “Print Shop” port responsible for print jobs. In this regard, the request can be reformatted to conform to the interface specified by the “Print Shop” port.
Notably, in accordance with the nesting logic of FIG. 1, multiple levels of manual function call conversion and dispatching will be required. Furthermore, it will be apparent to the skilled artisan that the nesting logic of FIG. 1 will be dependant upon the static topology illustrated therein. To the extent that the request enters the topology at a level other than the top level, a different interface will be required to call the original service request. More importantly, a reorganization of topology, for instance moving the underlying leaf level port and associated requested service to a different level in the topology will require a complete recoding of the dispatching logic.